package pe.com.ztaxi.taxis.controller.rest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import pe.com.ztaxi.taxis.model.OrdenServicio;
import pe.com.ztaxi.taxis.service.OrdenServicioService;
import pe.com.ztaxi.taxis.service.UnidadMovilService;

/**
 * @author Warlux
 *
 */
@Controller
@RequestMapping("/rest")
public class OrdenServicioControllerRest {

	@Autowired
	OrdenServicioService ordenServicioService;
	
	@Autowired
	UnidadMovilService unidadMovilService;

	@RequestMapping(value = "/ordenServicio/{id}", method = RequestMethod.GET)
	@ResponseBody
	public OrdenServicio buscarOrdenServicio(@PathVariable("id") int id) {		
		return ordenServicioService.buscarPorCodigo(id);
	}
	
	@RequestMapping(value="/ordenServicio", method=RequestMethod.POST)
	@ResponseBody
	public String saveOrdenServicio(OrdenServicio ordenServicio) {
		ordenServicioService.modificarOrdenServicio(ordenServicio);
		return "Orden modificada";
	}
	
	@RequestMapping(value="/ordenServicio/{id}/confirma", method=RequestMethod.GET)
	@ResponseBody
	public boolean confirmaOrdenServicio(@PathVariable("id") int id) {
		OrdenServicio ordenServicio = ordenServicioService.buscarPorCodigo(id);
		ordenServicioService.confirmarRecepcion(ordenServicio);
		return true;
	}
	
	@RequestMapping(value="/ordenServicio/{id}/inicioOrigen", method=RequestMethod.GET)
	@ResponseBody
	public boolean confirmaHaciaOrigen(@PathVariable("id") int id) {
		OrdenServicio ordenServicio = ordenServicioService.buscarPorCodigo(id);
		ordenServicioService.actualizarHoraInicioOrigen(ordenServicio);
		return true;
	}
	
	@RequestMapping(value="/ordenServicio/{id}/llegadaOrigen", method=RequestMethod.GET)
	@ResponseBody
	public boolean confirmaLlegadaOrigen(@PathVariable("id") int id) {
		OrdenServicio ordenServicio = ordenServicioService.buscarPorCodigo(id);
		ordenServicioService.actualizarHoraLlegadaOrigen(ordenServicio);
		return true;
	}
	
	@RequestMapping(value="/ordenServicio/{id}/inicioPrimerDestino", method=RequestMethod.GET)
	@ResponseBody
	public boolean confirmaInicioPrimerDestino(@PathVariable("id") int id) {
		OrdenServicio ordenServicio = ordenServicioService.buscarPorCodigo(id);
		ordenServicioService.actualizarHoraInicioPrimerDestino(ordenServicio);
		return true;
	}
	
	/*
	 * Sirve solamente para apoyar el desarrollo
	 */
	@RequestMapping(value="/ordenServicio/{id}/reset", method=RequestMethod.GET)
	@ResponseBody
	public boolean resetOrdenServicio(@PathVariable("id") int id) {
		OrdenServicio ordenServicio = ordenServicioService.buscarPorCodigo(id);
		ordenServicioService.resetOrdenServicio(ordenServicio);
		return true;
	}

}
